import request from '@/utils/request'

/**
 * 获取全球企业库数据
 * @param {Object} params - 查询参数
 * @returns {Promise} 返回Promise对象
 */
export function getGlobalEnterprises(params) {
  return request({
    url: '/enterprises/global',
    method: 'get',
    params,
    timeout: 60000,  // 增加超时时间到60秒
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
  }).then(response => {
    // 检查响应类型
    if (response === undefined || response === null) {
      // console.error('API返回了undefined或null');
      return [];
    }
    
    let result = [];
    
    if (Array.isArray(response)) {
      // 返回原始数组
      result = response;
    } else if (response && typeof response === 'object' && Array.isArray(response.data)) {
      // 如果是包装的响应对象，返回data属性
      result = response.data;
    } else if (response && typeof response === 'object' && response.content && Array.isArray(response.content)) {
      // 另一种常见的包装格式
      result = response.content;
    } else {
      // 如果格式不符合预期，记录详细错误
      // console.error('API响应格式异常:', response);
      // console.error('响应类型:', typeof response);
      if (typeof response === 'object') {
        // console.error('响应对象的键:', Object.keys(response));
      }
      // console.warn('接收到的数据格式不符合预期，请检查后端API');
      return [];
    }
    
    return result;
  }).catch(error => {
    // console.error('获取全球企业库数据异常:', error);
    // console.error('连接后端API时出错，请确保后端服务正常运行');
    throw error; // 重新抛出异常，让调用方处理
  });
}

/**
 * 导出全球企业库数据
 * @param {Object} params 查询参数
 * @returns {Promise} 导出结果
 */
export function exportGlobalEnterprises(params) {
  return request({
    url: 'enterprises/global/export',
    method: 'post',
    data: params,
    responseType: 'blob',
    headers: {
      'Content-Type': 'application/json',
      'Accept': 'application/json, application/octet-stream, application/vnd.ms-excel'
    },
    meta: {
      isExport: true
    },
    retry: 1,
    retryDelay: 1500,
    timeout: 30000 // 延长超时时间为30秒
  });
} 